-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pull] develop from misskey-dev:develop #9
base: develop
Are you sure you want to change the base?
Conversation
* spec(frontend): Bull Dashboard に relationship queue を追加 (MisskeyIO#751) (cherry picked from commit a8bbccb) * Update Changelog * Update Changelog --------- Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
* refactor: getBgColor関数の切り出し + fix types (taiyme#291) * move thing * revert unnecesary changes --------- Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
… (#14778) Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
CHANGELOG.md
Outdated
@@ -4,7 +4,8 @@ | |||
- |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CHANGELOG.md の改善点 (Uncle Bob 風)
- 見出しのフォーマットを統一: "Client"と"Server"の見出しは、"###"ではなく"##"で統一しましょう。
- 変更点を簡潔に: "Enhance"の後に具体的な変更内容を簡潔に記述し、詳細な説明はリンクで別ファイルに委ねましょう。
- 不要なコメント削除: "-"と"-}""は不要なので削除しましょう。
- 変更点をわかりやすく: "Cherry-picked from..."のような説明を追記して、変更元の情報を明記しましょう。
- コードレビューの指摘: "Bull DashboardでRelationship Queueの状態も確認できるように"は、より具体的に "Relationship Queueの状態をBull Dashboardで確認できるように" と書き換えることを検討しましょう。
@@ -30,6 +30,7 @@ import type { | |||
EndedPollNotificationQueue, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- このコードは、Uncle Bob の原則に従って改善することができます。
-
- 依存関係の注入:
ClientServerService
クラスは、コンストラクタで多くの依存関係を受け取っています。これは、クラスの責任を明確にし、テストしやすくするために、依存関係を注入することが望ましいです。
- 依存関係の注入:
-
- インターフェース: 各キューに対してインターフェースを作成することで、実装の詳細を隠蔽し、コードの柔軟性を高めることができます。
-
- 名前: クラス名やメソッド名など、名前付けを明確にすることで、コードの可読性を高めることができます。
-
- 責務:
ClientServerService
クラスは、複数の責務を担っています。それぞれの責務を独立したクラスに分割することで、コードの保守性を高めることができます。
- 責務:
-
- テスト: コードのテストがしやすいように、単体テストを作成する必要があります。
このコードは、Uncle Bob の原則に従って、いくつかの改善点があります。
- 依存関係の注入:
ClientServerService
クラスは、コンストラクターで多くの依存関係を受け取っています。これは、クラスの責任を明確にするため、依存関係を注入すべきです。 - インターフェース: 各キューに対してインターフェースを作成することで、実装の詳細を隠蔽し、コードの柔軟性を高めることができます。
- 責務:
ClientServerService
クラスは、複数の責務を担っています。それぞれの責務を独立したクラスに分割することで、コードの保守性を高めることができます。 - 名前: クラス名やメソッド名など、名前付けを明確にすることで、コードの可読性を高めることができます。
- テスト: コードのテストがしやすいように、単体テストを作成する必要があります。
@@ -64,26 +64,30 @@ const showBody = ref(props.expanded); | |||
const ignoreOmit = ref(false); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点 (Uncle Bob 風)
- 関数に明示的な型を追加:
enter
,afterEnter
,leave
,afterLeave
関数の引数と戻り値に型注釈を追加して、コードの可読性を高め、潜在的なエラーを防ぎましょう。 - マジックナンバーを定数に:
0
やInfinity
などのマジックナンバーは定数に置き換えて、コードの意味を明確化しましょう。 null
ではなく空文字列を使用:el.style.height
をリセットする際にnull
ではなく空文字列''
を使用して、意図を明確にしましょう。getBoundingClientRect
の使用を最小限に: DOM 操作はパフォーマンスに影響するため、必要な場合にのみgetBoundingClientRect
を使用しましょう。calcOmit
関数の目的を明確化:calcOmit
関数の具体的な処理をコメントで記述するか、よりわかりやすい関数名に変更して、コードの意図を明確にしましょう。
@@ -128,14 +128,14 @@ export default defineComponent({ | |||
return children; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
onBeforeLeave
とonLeaveCancelled
は、Element
をHTMLElement
にキャストしている。これは冗長で、TypeScript の型チェックが不十分になっている。代わりに、if
文でHTMLElement
かどうかをチェックして、HTMLElement
でない場合は何もしないようにする。onLeaveCancelled
は、onBeforeLeave
の逆の処理をしている。この2つの関数は、単一の関数にまとめることができる。- 関数名は、より明確な表現に変えることができる。
onBeforeLeave
はfixElementPosition
、onLeaveCancelled
はresetElementPosition
など。 - すべてのコードは、より簡潔に書ける。
return children
は、単にchildren
で置き換えることができる。 - このコンポーネントは、
onBeforeLeave
とonLeaveCancelled
の処理が重複している。この処理を別の関数やmixinにまとめることで、コードをより再利用可能にすることができる。
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このコードは改善の余地があります。以下にUncle Bobの考え方を取り入れた改善点を5行で示します。
- 小さな関数に分割する:
enter
,afterEnter
,leave
,afterLeave
はそれぞれ独立した機能を持ちます。これらの関数をさらに小さな関数に分割することで、コードの可読性を向上させ、再利用性を高めましょう。 - 命名を改善する:
parentBg
やrootEl
といった名前は、その変数が何を表すのか明確ではありません。より具体的な名前を付けることで、コードの理解を容易にします。 - 条件文を簡潔にする:
if (!(el instanceof HTMLElement)) return;
のような条件文は、コードの可読性を低下させる可能性があります。if (el instanceof HTMLElement)
のように書き換えることで、よりシンプルで理解しやすいコードになります。 - マジックナンバーを定数で置き換える:
0.85
のような数字は、コードの理解を妨げる可能性があります。定数として定義することで、コードの可読性を向上させ、メンテナンス性を高めます。 - 不要なコードを削除する:
tinycolor
は使用されていません。不要なライブラリは削除することで、コードのサイズを小さくし、パフォーマンスを向上させましょう。
@@ -56,8 +56,9 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
</template> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点
- 関数の引数型定義:
enter
,afterEnter
,leave
,afterLeave
の関数は引数型をHTMLElement
に明示的に定義すべきです。これにより、コードの可読性と型安全性が高まります。 getBgColor
関数の分離:getBgColor
関数は複雑で、コンポーネントの責任範囲を超えています。この関数は別ファイルに移動し、再利用可能なユーティリティ関数にするべきです。null
チェックの簡略化:rootEl.value!.parentElement!
などの強制アンラップは危険なコードです。代わりに、オプショナルチェイニング (?.
) を使用して null チェックを簡略化し、コードの安全性を向上させるべきです。- スタイル設定の簡略化:
el.style.height = null
の代わりにel.style.height = ''
を使用して、スタイルをクリアすべきです。 withDefaults
の位置:defineProps
の直後にwithDefaults
を配置することで、コードの可読性と整理性を向上させることができます。
これらの改善点を適用することで、コードはより読みやすく、保守しやすいものになります。
@@ -53,7 +53,7 @@ export type Tab = { | |||
</script> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点
- インポート順序:
import
文の順序がバラバラです。Vue の公式ガイドラインに従って、vue
のインポートを最初に、その後アルファベット順に並べてください。 - 型アノテーション:
onTabWheel
関数のev
パラメータの型アノテーションは不要です。すでにWheelEvent
型として推測できるため、省略可能です。 nextTick
の使用:enter
関数内でnextTick
を使用していますが、これは DOM が更新されるまで待機するための一般的なパターンであり、説明コメントを追加する必要はありません。offsetWidth
の使用:enter
とleave
関数内でoffsetWidth
を使用して reflow を強制していますが、これよりも効率的な方法があるかもしれません。例えば、element.style.width = 'auto'
を試すことができます。- 冗長なキャスト:
el
をHTMLElement
にキャストする箇所がありますが、コンテキストからすでにHTMLElement
と推測できるため、キャストは不要です。
これらの修正によってコードはより読みやすく、保守しやすくなります。
@@ -4,19 +4,11 @@ | |||
*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点 (Uncle Bob 風)
- 重複したコードを排除:
getBgColor
関数は外部のユーティリティファイルに移動し、重複を排除する。 - 可読性を向上:
getBgColor
関数のロジックをシンプルにし、名前をわかりやすく変更する。 - エラーハンドリング:
parentElement
が存在しない場合の処理を追加し、null チェックを行う。 - 可読性を向上:
??
オペレータを使って、親要素の背景色が存在しない場合にデフォルト値を設定する。 - テストしやすいコードにする:
getBgColor
関数を独立してテスト可能なようにする。
@@ -4,19 +4,11 @@ | |||
*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点 (Uncle Bob 風)
- 重複コードを排除:
getBgColor
関数は再利用可能で、別のファイルに移動すべきです。 - 明確な命名:
src
は何を表しているのか不明です。より具体的な名前 (e.g.,element
) を使用しましょう。 - 簡潔な条件:
getBgColor
の条件式は簡潔に表現できます。includes
よりもstyle.backgroundColor !== 'transparent'
などで十分です。 - デフォルト値:
getBgColor
の返り値は、親要素がなければtransparent
になります。このロジックは関数内で処理すべきです。 - 可読性を向上: コメントを適切に追加してコードの意図を明確にしましょう。
@@ -4,19 +4,11 @@ | |||
*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点
getBgColor
関数は、重複したコードを別のファイルに切り出し、再利用性を高めています。getBgColor
関数のロジックを簡素化し、条件分岐を減らしました。parentElement
が存在しない場合にtransparent
を返すように修正し、エラーを回避しました。getComputedStyle
を用いて要素の背景色を取得する際に、getPropertyValue
メソッドを使用するように修正しました。myBg
の取得部分に??
演算子を用いて、デフォルト値を指定するように修正しました。
@@ -5,18 +5,16 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点 (Uncle Bob風に)
- 不要なテンプレートのネストを削除:
template #header
内のMkPageHeader
は直接記述できます。 - 条件文の簡略化:
!($i && ($i.isAdmin || $i.policies.canInvite))
は!$i || !$i.isAdmin && !$i.policies.canInvite
に簡略化できます。 - CSS クラスの命名規則を統一:
_ghost
は他のクラス名と異なるので、統一された命名規則に従うべきです。 - 不要なスタイル属性を削除:
style="text-align: center;"
は CSS ファイルに移すべきです。 - 変数名を明確にする:
resetCycle
やinviteLimit
のような変数名は、より具体的な意味を持つ名前に変更すべきです。
@@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
<template> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点 (Uncle Bob 風)
- エラーハンドリングの明確化:
error
変数はundefined
とnull
両方を受け取れるように設定していますが、明確にnull
を指定しましょう。 - 条件式簡略化:
!(typeof error === 'undefined')
はerror != null
に置き換えられます。 - 重複した条件式削除:
v-if="list"
は重複しているので、片方を削除しましょう。 - 変数名の改善:
list
変数はuserList
などのより明確な名前で置き換えましょう。 - 不要なクラスの削除:
:class="$style.root"
や:class="$style.img"
などは不要な可能性があります。スタイルはCSSで管理するのが良いでしょう。
@@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
<template> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点 (Uncle Bob 風)
- エラーハンドリングの改善:
error
はundefined
ではなくnull
で初期化し、error != null
を使ってエラー表示を制御するべき。 - 変数名の統一:
role
プロパティはroleId
に変更し、コンポーネント内部ではrole
を使ってロールデータを表す。 - 型注釈の追加:
role
とerror
に型注釈を追加してコードの可読性を向上させる。 - 不要なコードの削除:
document.title
の設定は不要。definePageMetadata
を使ってタイトルを設定する。 visible
の条件式の簡略化:isExplorable
とisPublic
を使用してvisible
を直接設定する。
これらの改善により、コードはより明確で読みやすくなり、エラー処理もより適切に行われるようになります。
@@ -217,7 +217,7 @@ const routes: RouteDef[] = [{ | |||
component: page(() => import('@/pages/theme-editor.vue')), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
path: '/roles/:role'
は、role
という名前が曖昧で、他のコンポーネントとの衝突の可能性があります。roleId
のようにより明確な名前を使用しましょう。- ルート定義は、明確で簡潔な名前、正確なパス、適切なコンポーネント参照を持つように、より明確かつ一貫性を持たせるべきです。
- 命名規則を適用して、コードの一貫性を確保しましょう。
path
パラメータは、意味のある名前を持つ変数に置き換えることで、コードの可読性を向上させることができます。- すべてのルート定義が、関連する機能やコンポーネントと明確に関連付けられていることを確認しましょう。
@@ -0,0 +1,18 @@ | |||
/* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コード改善点 (Uncle Bob 風)
- 関数名:
getBgColor
はあまり説明的ではない。getBackgroundColor
やfindBackgroundColor
のように、目的を明確にする名前に変更しよう。 - null チェック:
elem == null
はelem === null || elem === undefined
に置き換える。より明確で、意図が明確になる。 - 早期リターン:
if (bg && tinycolor(bg).getAlpha() !== 0)
の条件が満たされない場合、すぐにreturn null
を実行することで、コードのネストを減らし、可読性を向上させる。 - 再帰呼び出し:
getBgColor(elem.parentElement)
は、再帰呼び出しが無限ループになる可能性がある。安全な再帰呼び出しになるように、終了条件を追加する必要がある。 - コメント: 関数の目的を明確にするためのコメントを追加する。例えば、
/** 要素の背景色を取得する。 */
のようなコメント。
このPRによるapi.jsonの差分 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #9 +/- ##
============================================
+ Coverage 19.38% 39.66% +20.28%
============================================
Files 721 1555 +834
Lines 102315 195723 +93408
Branches 992 2575 +1583
============================================
+ Hits 19831 77641 +57810
- Misses 81933 117514 +35581
- Partials 551 568 +17 ☔ View full report in Codecov by Sentry. |
* Enhance: ドライブでソートができるように * Update CHANGELOG.md
* fix(frontend): 通知の範囲指定が必要ない通知設定でも範囲指定がでている問題を修正 * Update Changelog --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix(frontend): Captcha のエラーハンドリングを修正 (MisskeyIO#768) (cherry picked from commit 88912d0) * Update Changelog * typo --------- Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
* wip * wip * wip * Update packages/frontend/src/pages/note.vue Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> * wip * Update WebhookTestService.ts * Update privacy.vue * wip * rename * Update locales/ja-JP.yml Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com> * 🎨 * wip --------- Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* wip * Update CHANGELOG.md * wip * wip * wip * Update privacy.vue * wip
[GHSA-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* enhance(frontend): 「単なるラッキー」の調整 * refactor * comment * Update Changelog --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* enhance(frontend): 外部アプリ認証画面の改良 * 🎨 * lint * Update Changelog * indent * lint * enhance: miauthのリダイレクト先をUI内でも表示するように * 🎨 * fix * fix
* fix(frontend): 管理画面のリンク切れを修正 * Update Changelog
* fix: should use invite limit cycle to calculate invite/limit * Update Changelog * Update changelog --------- Co-authored-by: Lhc_fl <lhcfl@outlook.com>
* enhance(frontend): Self-XSS防止用のメッセージを追加 * Update Changelog * embedにも同様の記述を追加
* fix(misskey-js): WebSocketの型定義をReconnectingWebsocketに依存するように * Update Changelog * run api extractor * fix * fix
* New translations ja-jp.yml (Russian) * New translations ja-jp.yml (English) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Thai) * New translations ja-jp.yml (Thai) * New translations ja-jp.yml (Japanese, Kansai) * New translations ja-jp.yml (Italian) * New translations ja-jp.yml (Italian) * New translations ja-jp.yml (Japanese, Kansai) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Thai) * New translations ja-jp.yml (Thai) * New translations ja-jp.yml (Thai) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Japanese, Kansai) * New translations ja-jp.yml (Korean (Gyeongsang)) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (English) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (English) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Spanish) * New translations ja-jp.yml (Spanish) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Italian) * New translations ja-jp.yml (Indonesian) * New translations ja-jp.yml (Indonesian) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Hungarian) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Italian) * New translations ja-jp.yml (Korean (Gyeongsang)) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Italian) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Catalan)
* enhance(i18n): 対応言語の追加 * 翻訳進捗が70%に満たないものを除外 * Update Changelog * 翻訳進捗が70%を超えたら導入の旨を明記 * typo --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
…ies (#14825) This is allowed according to the Activity vocabulary: https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon The issue is noticeable in combination with Bridgy Fed: snarfed/bridgy-fed#1408
* fix race conditions in check_connect.js (cherry picked from commit 524ddb9) * fix * Update Changelog --------- Co-authored-by: Hazelnoot <acomputerdog@gmail.com>
* refactor(frontend): できるだけanyを除去 * refactor * lint * fix * remove unused * Update packages/frontend/src/components/MkReactionsViewer.details.vue * Update packages/frontend/src/components/MkUsersTooltip.vue --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
See Commits and Changes for more details.
Created by pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )